Skip to content

feat(#983): add merge proposal voting UI for source key holders - #1003

Merged
Chucks1093 merged 6 commits into
accesslayerorg:devfrom
KingDavid9999:fixes-issue-#983
Sep 27, 2026
Merged

Chucks1093 merged 6 commits into
accesslayerorg:devfrom
KingDavid9999:fixes-issue-#983

Conversation

@KingDavid9999

Copy link
Copy Markdown
Contributor

Add merge proposal banner to the source key detail page with live
vote tally, deadline countdown, and post-deadline outcome states.

  • Add MergeProposal domain types (status, vote direction)
  • Add mergeProposal.service for fetching proposals and casting votes
  • Add useMergeProposal (30s poll, stops once voting closes) and
    useCastMergeVote (optimistic update with rollback) hooks
  • Add MergeProposalCountdown for a ticking deadline countdown
  • Add MergeProposalBanner: approve/reject actions gated to qualifying
    holders, live approval % vs threshold tally, outcome badge for
    passed/failed/pending_execution
  • Wire banner into CreatorDetailPage
  • Add unit tests for tally/threshold/outcome utils and banner gating,
    voting, and outcome states

Closes #983

… holders

Add merge proposal banner to the source key detail page with live
vote tally, deadline countdown, and post-deadline outcome states.

- Add MergeProposal domain types (status, vote direction)
- Add mergeProposal.service for fetching proposals and casting votes
- Add useMergeProposal (30s poll, stops once voting closes) and
  useCastMergeVote (optimistic update with rollback) hooks
- Add MergeProposalCountdown for a ticking deadline countdown
- Add MergeProposalBanner: approve/reject actions gated to qualifying
  holders, live approval % vs threshold tally, outcome badge for
  passed/failed/pending_execution
- Wire banner into CreatorDetailPage
- Add unit tests for tally/threshold/outcome utils and banner gating,
  voting, and outcome states

Closes accesslayerorg#983
@drips-wave

drips-wave Bot commented Sep 26, 2026

Copy link
Copy Markdown

@KingDavid9999 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

…al setQueryData calls setQueryData's typed overload mis-inferred userVote as `undefined` when passed a plain object literal with an explicit generic. Switch both call sites to updater functions to resolve the CI build failure.
@Chucks1093

Copy link
Copy Markdown
Member

Merge conflict

@Chucks1093
Chucks1093 merged commit e3e99c3 into accesslayerorg:dev Sep 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build key merge voting interface for source key holders

2 participants